home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / alib / csup / dos_support / OBSOLETE / oldname.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-16  |  1.2 KB  |  63 lines

  1. /* path.c */
  2.  
  3. #include <exec/types.h>
  4. #include <exec/memory.h>
  5. #include <dos/dos.h>
  6. #include <dos/dosextens.h>
  7. #include <dos/dosasl.h>
  8.  
  9.  
  10. /*
  11.  #include <clib/exec_protos.h>
  12.  #include <pragmas/exec_old_pragmas.h>
  13.  #include <clib/dos_protos.h>
  14.  #include <pragmas/dos_pragmas.h>
  15.  
  16. */
  17.  
  18.  
  19. extern LONG DosNameFromAnchor(struct AnchorPath *anchor, char *buffer, LONG buflen);
  20. extern LONG SetIoErr( long result );
  21. extern BOOL AddPart( STRPTR dirname, STRPTR filename, unsigned long size );
  22.  
  23. extern struct DosLibrary *DOSBase;
  24.  
  25. LONG
  26. NameFromAnchor (anchor, buffer, buflen)
  27.     struct AnchorPath *anchor;
  28.     char *buffer;
  29.     LONG buflen;
  30. {
  31.     struct AChain *chain;
  32.  
  33.     /* override if bit is set */
  34.     if (DOSBase->dl_Root->rn_Flags & RNF_PRIVATE1)
  35.         return DosNameFromAnchor(anchor,buffer,buflen);
  36.  
  37.     if (buflen == 0)
  38.     {
  39.         SetIoErr(ERROR_LINE_TOO_LONG);
  40.         return FALSE;
  41.     }
  42.  
  43.     *buffer = '\0';
  44.  
  45.     for (chain = anchor->ap_Base;
  46.          chain != NULL;
  47.          chain = chain->an_Child)
  48.     {
  49.         /* Must check if the node's a pattern node! */
  50.         if (!AddPart(buffer,
  51.                  chain->an_Flags & DDF_PatternBit ?
  52.                     &(chain->an_Info.fib_FileName[0]) :
  53.                     &chain->an_String[0], 
  54.                 buflen))
  55.         {
  56.             return FALSE;    /* IoErr already set */
  57.         }
  58.     }
  59.  
  60.     return DOSTRUE;
  61. }
  62.  
  63.